///////////////////////////////////////////////////////////
//  CurrentCommand.h
//  Implementation of the Class CurrentCommand
//  Created on:      21-Sep-2013 12:06:39 PM
//  Original author: Jakkaphan Aiemcharoenjit
///////////////////////////////////////////////////////////

#if !defined(EA_4935F6A4_85E8_4217_9858_CE84887B7844__INCLUDED_)
#define EA_4935F6A4_85E8_4217_9858_CE84887B7844__INCLUDED_

#include "ICommand.h"

namespace UI
{
  namespace CMD
  {
    class CurrentCommand
    {

    public:
      virtual ~CurrentCommand();
      static CurrentCommand* GetInstance();
      static void Release();
      ICommand::CommandType GetCurrentCommand();
      void SetCurrentCommand(ICommand::CommandType _type);
      ICommand::CommandType GetNewOrEditCommand();
      void SetNewOrEditCommand(ICommand::CommandType _type);

    protected:
      CurrentCommand();

    private:
      ICommand::CommandType m_currentCommand;
      ICommand::CommandType m_newOrEditCommand;

      static CurrentCommand* g_currentCmdInstance;

    };
  }
}

#endif // !defined(EA_4935F6A4_85E8_4217_9858_CE84887B7844__INCLUDED_)
